Developing Games With Ruby: For those who write code for living

Developing Games With Ruby: For those who write code for living

Author:Tomas Varaneckas [Varaneckas, Tomas]
Language: eng
Format: epub
Published: 2015-03-14T22:00:00+00:00


Back to TankPhysics:

class TankPhysics < Component # ... def can_move_to?(x, y) old_x, old_y = object.x, object.y object.x = x object.y = y return false unless @map.can_move_to?(x, y) @object_pool.nearby(object, 100).each do |obj| if collides_with_poly?(obj.box) # Allow to get unstuck old_distance = Utils.distance_between( obj.x, obj.y, old_x, old_y) new_distance = Utils.distance_between( obj.x, obj.y, x, y) return false if new_distance < old_distance end end true ensure object.x = old_x object.y = old_y end # ... private def collides_with_poly?(poly) if poly poly.each_slice(2) do |x, y| return true if Utils.point_in_poly(x, y, *box) end box.each_slice(2) do |x, y| return true if Utils.point_in_poly(x, y, *poly) end end false end # ... end



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.